/******************************************************************************* * Copyright (c) 2000, 2009 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.ant.internal.ui.model; import org.eclipse.jface.viewers.CheckboxTableViewer; import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.viewers.ViewerFilter; public class InternalTargetFilter extends ViewerFilter { private int fFiltered = 0; /** * Returns whether the given target is an internal target. Internal targets are targets which have no description. The default target is never * considered internal. */ @Override public boolean select(Viewer viewer, Object parentElement, Object element) { boolean result = true; if (viewer instanceof CheckboxTableViewer) { if (((CheckboxTableViewer) viewer).getChecked(element)) { // do not filter out (selected) checked items return true; } } if (element instanceof AntTargetNode) { result = !((AntTargetNode) element).isInternal(); } if (!result) { fFiltered++; } return result; } /* * (non-Javadoc) * * @see org.eclipse.jface.viewers.ViewerFilter#filter(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object[]) */ @Override public Object[] filter(Viewer viewer, Object parent, Object[] elements) { fFiltered = 0; return super.filter(viewer, parent, elements); } public int getNumberOfTargetsFiltered() { return fFiltered; } }